/**
 * @file main.c
 * @author  (you@domain.com)
 * @brief
 * @version 0.1
 * @date 2025-05-20
 */
#include <stdint.h>
#include "adc.h"
#include "dmac.h"

#include "hal_gpio.h"
#include "hal_adc.h"
#include "hal_tim.h"
#include "hal_sysclk.h"

#include "valve.h"
#include "heater.h"
#include "temprature.h"
#include "application.h"

unsigned char task_1ms_flg = 0;
unsigned char task_100ms_flg = 0;


int main()
{
	/* 硬件初始化 */
	hal_sysclk_config();  // HCLK = 48MHz, PCLK = HCLK
    hal_goio_init();      // 初始化IO
    hal_adc_init();       // 初始化ADC
    hal_tim0_init(3000);  // 1ms 中断
	hal_tim1_init(18750); // 100ms 中断
    
	/* 软件初始化 */
	blow_back_init();     
	controller_init();
	
	delay1ms(100); // 延迟等待系统稳定
	update_data(); // 更新接口数据，防止数据丢失
	
    while (1)
    {
        blow_back_logic(); // 反吹逻辑判断

        /* 1ms 执行函数，用于系统数据更新 */
        if (task_1ms_flg == 1)
        {
            update_data();
            task_1ms_flg = 0;
        }	
    }
}
